#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<windows.h>
#include<stdlib.h>
int main() {
	int a[30][30] = { 0 };
	int i = 0;
	int j = 0;
	int n = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			a[i][j] = 0;
		}
		printf("\n");
	}
	for (i = 0; i < n; i++) {
		a[i][0] = 1;
		for (j = 1; j <= i; j++) {
			a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
		}
	}
	for (i = 0; i < n; i++) {
		for (j = 0; j <= i; j++) {
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}






	return 0;
}

















//int main() {
//	int n = 0;
//	int m = 0;
//	int i = 0;
//	int j = 0;
//	scanf("%d %d", &n, &m);
//	int a[10][10] = { 0 };
//	for (i = 0; i < n; i++) {
//		for (j = 0; j < m; j++) {
//			scanf("%d", &a[i][j]);
//		}
//	}
//	int k = 0;
//	char t=0;
//	int x = 0;
//	int y = 0;
//	int temp = 0;
//	scanf("%d", &k);
//	while(k>0) {
//		scanf(" %c %d %d", &t,&x,&y);
//		if (t == 'r') {
//			for (i = 0; i < m; i++) {
//				temp = a[x-1][i];
//				a[x-1][i] = a[y-1][i];
//				a[y-1][i] = temp;
//			}
//		}
//		else {
//			scanf("%d %d", &x, &y);
//			for (i = 0; i < n; i++) {
//				temp = a[i][x - 1];
//				a[i][x - 1] = a[i][y - 1];
//				a[i][y - 1] = temp;
//			}
//		}
//		k--;
//	}
//	for (i = 0; i < n; i++) {
//		for (j = 0; j < m; j++) {
//			printf("%d ", a[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}







//int main() {
//    int n = 0;
//    int m = 0;
//    int i = 0;
//    int j = 0;
//    int k = 0;
//    scanf("%d %d", &n, &m);
//    for (i = 0; i < n; i++) {
//        for (j = 0; j < m; j++) {
//            scanf("%d", &k);
//            printf("%d ", k);
//        }
//        printf("\n");
//    }
//
//    return 0;
//}